package com.xm.service.reception_desk;

import com.xm.dao.reception_desk.CouponsDao;
import com.xm.entity.Coupons;
import com.xm.exception.SqlErrorException;

import java.sql.SQLException;
import java.util.List;

/**
 * 优惠卷
 * @author 康文程
 * @date 2024-1-8 下午 12:05
 */
public class CouponsService {
    private final CouponsDao dao = new CouponsDao();
    /**
     * 根据商品类别Id查询可用的优惠卷
     * @param categoryId 种类Id
     * @return List<Coupons> 集合对象
     * @throws SQLException 抛出错误
     */
    public List<Coupons> getAvailableCouponsByCategoryIdsAndInformationId(String categoryId,Integer informationId) throws SQLException {
        return dao.getAvailableCouponsByCategoryIdsAndInformationId(categoryId,informationId);
    }

    /**
     * 根据用户信息Id查询可用的优惠卷
     * @return List<Coupons> 集合对象
     * @throws SQLException 抛出错误
     */
    public List<Coupons> getAvailableCouponsByInformationId(Integer informationId,Integer couponStatus) throws SQLException {
        return dao.getAvailableCouponsByInformationId(informationId,couponStatus);
    }
    /**
     * 根据用户信息Id查询当前用户可用的优惠券数量
     * @param informationId 用户信息Id
     * @return int 优惠券数量
     * @throws SQLException 抛出错误
     */
    public int couponsCount(Integer informationId,Integer couponStatus) throws SqlErrorException {
        return dao.couponsCount(informationId,couponStatus);
    }


    /**
     * 根据优惠券ID修改coupon_status字段
     *
     * @param couponId 优惠券ID
     * @param couponStatus 优惠券状态
     * @return 成功返回true，失败返回false
     * @throws SqlErrorException SQL执行异常
     */
    public boolean updateCouponStatusById(Integer couponId, Integer couponStatus) throws SqlErrorException {
        return dao.updateCouponStatusById(couponId, couponStatus);
    }
}
